using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BusinessRules;
using DataAccess;

public partial class EpeListadoEje : Page
{
    #region Propiedades

    public string StrPlnId
    {
        get
        {
            if (ViewState["strPlnId"] != null)
                return ViewState["strPlnId"].ToString();
            return "";
        }
        set { ViewState["strPlnId"] = value; }
    }


    public string IdentificadorFaeId
    {
        get
        {
            if (ViewState["IdentificadorFaeId"] != null)
                return ViewState["IdentificadorFaeId"].ToString();
            return "";
        }
        set { ViewState["IdentificadorFaeId"] = value; }
    }

    public string IdentificadorAccId
    {
        get
        {
            if (ViewState["IdentificadorAccId"] != null)
                return ViewState["IdentificadorAccId"].ToString();
            return "";
        }
        set { ViewState["IdentificadorAccId"] = value; }
    }

    private DataTable FinAccionEPeDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[FinAccionEpeData.FIN_ACCION_EPE_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[FinAccionEpeData.FIN_ACCION_EPE_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(FinAccionEpeData.FIN_ACCION_EPE_TABLE + Session.SessionID, value);
            }
        }
    }

    public string IdentificadorSasId
    {
        get
        {
            if (ViewState["IdentificadorSasId"] != null)
                return ViewState["IdentificadorSasId"].ToString();
            return "";
        }
        set { ViewState["IdentificadorSasId"] = value; }
    }

    public string IdentificadorSacId
    {
        get
        {
            if (ViewState["IdentificadorSacId"] != null)
                return ViewState["IdentificadorSacId"].ToString();
            return "";
        }
        set { ViewState["IdentificadorSacId"] = value; }
    }

    #endregion


    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        traerContextItems();

        if (!IsPostBack)
        {
            if (IdentificadorAccId != "")
            {
                cargarCamposEncabezado();
                BindDatos();
            }
        }

        

        ////////////////////////////
        // cargar Epes de cache //
        ////////////////////////////
        if (FinAccionEPeDataTable != null)
        {
            if (FinAccionEPeDataTable.Rows.Count > 0)
            {
                gidvAccionEpeDev.DataSource = FinAccionEPeDataTable.DefaultView;
                gidvAccionEpeDev.DataBind();
            }
        }
    }

    #endregion


    #region cargarCamposEncabezado

    private void cargarCamposEncabezado()
    {
        SigPlanAccion objSigPlanAccion = new SigPlanAccion(ConfigurationManager.AppSettings["Conn"]);
        SigPlanAccionData objSigPlanAccionData = objSigPlanAccion.ConsultarPnlId(Convert.ToDecimal(StrPlnId));
        if (objSigPlanAccionData != null)
        {
            //---------------------
            //Cargar datos Rubros -
            //---------------------
            DataRow filaPlanAccion = objSigPlanAccionData.Rows[0];
            lblDependencia.Text = filaPlanAccion[SigPlanAccionData.DEP_NOMBRE_FIELD].ToString();
            lblDescripcionRubro.Text = filaPlanAccion[SigPlanAccionData.PLN_NOMBRE_FIELD].ToString();
            decimal decVAlor = Convert.ToDecimal(filaPlanAccion[SigPlanAccionData.PLN_VALOR_APROPIACION_FIELD].ToString());
            lblValorApropiacion.Text = decVAlor.ToString("C");
        }

        SigAccion objSigAccion = new SigAccion(ConfigurationManager.AppSettings["Conn"]);
        SigAccionData objSigAccionData = objSigAccion.ConsultarAccionAccID(IdentificadorAccId);
        try
        {
            //---------------------
            //Cargar datos Accion -
            //---------------------
            DataRow filaAccion = objSigAccionData.Rows[0];
            lblAccion.Text = filaAccion[SigAccionData.ACC_DESCRIPCION_FIELD].ToString();
            decimal decValor = Convert.ToDecimal(filaAccion[SigAccionData.ACC_VALOR_FIELD].ToString());
            lblValorAccion.Text = decValor.ToString("C");
        }
        catch (Exception)
        {

            throw;
        }

    }

    #endregion


    #region BindDatos

    private void BindDatos()
    {
        FinAccionEpe objFinAccionEpe = new FinAccionEpe(ConfigurationManager.AppSettings["Conn"]);
        FinAccionEpeData objFinAccionEpeData = objFinAccionEpe.ConsultarFinAccionEpe(Convert.ToDecimal(IdentificadorAccId));
        FinAccionEPeDataTable = objFinAccionEpeData;
        gidvAccionEpeDev.DataSource = objFinAccionEpeData.DefaultView;
        gidvAccionEpeDev.DataBind();
    }

    #endregion


    #region ContextItems

    private void crearContextItems()
    {
        
        
        Context.Items["plnId"] = StrPlnId;
        Context.Items["IdentificadorSasId"] = IdentificadorSasId;
        Context.Items["IdentificadorSacId"] = IdentificadorSacId;
        Context.Items["IdentificadorAccId"] = IdentificadorAccId;

        Context.Items["IdentificadorFaeId"] = IdentificadorFaeId;
        

    }

    private void traerContextItems()
    {
        if (Context.Items["plnId"] != null)
            StrPlnId = Context.Items["plnId"].ToString();

        if (Context.Items["IdentificadorSasId"] != null)
            IdentificadorSasId = Context.Items["IdentificadorSasId"].ToString();

        if (Context.Items["IdentificadorSacId"] != null)
            IdentificadorSacId = Context.Items["IdentificadorSacId"].ToString();

        if (Context.Items["IdentificadorAccId"] != null)
            IdentificadorAccId = Convert.ToString(Context.Items["IdentificadorAccId"]);
        
    }

    #endregion


    protected void gidvAccionEpe_SelectedIndexChanged(object sender, EventArgs e)
    {
        Response.Write("<script language=javascript>window.open('AccionEpeDetalle.aspx?AccId=" + IdentificadorAccId + "','nueva_ventana','width=800,height=600,scrollbars=1');</script>");
    }


    protected void LinkContratos_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("Contratos.aspx?SSM_ID=13", true);
    }
    protected void lnkAccionesMetas_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("SigAccionMetas.aspx?SSM_ID=13", true);
    }
    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("PlanAccionListadoEje.aspx?SSM_ID=20", true);
    }

    protected void gidvAccionEpeDev_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
    {
        if (e.KeyValue.ToString() != "")
        {
            if (e.CommandArgs.CommandName == "cmdVerDetalle")
            {
                if (IdentificadorAccId != "")
                {
                    cargarCamposDetalle(Convert.ToDecimal(e.KeyValue.ToString()));
                }

                PopupPanel1.Show();

            }
        }
    }

    private void cargarCamposDetalle(decimal faeId)
    {
       
            FinAccionEpe objFinAccionEpe =
                new FinAccionEpe(ConfigurationManager.AppSettings["Conn"]);
            FinAccionEpeData objContratosData = objFinAccionEpe.ConsultarFinAccionEpFaeId(faeId);
            if (objContratosData != null)
            {
                //---------------------
                //Cargar datos Contratos -
                //---------------------
                DataRow filaContratos = objContratosData.Rows[0];

                lblFAE_NUMEROEPE.Text = filaContratos[FinAccionEpeData.FAE_NUMEROEPE_FIELD].ToString();
                lblFAE_FECHA.Text =
                    filaContratos[FinAccionEpeData.FAE_FECHA_FIELD].ToString();
                lblFAE_JUSTIFICACION.Text =
                    filaContratos[FinAccionEpeData.FAE_JUSTIFICACION_FIELD].ToString();
                lblFAE_OBJETO.Text = filaContratos[ContratosData.FAE_OBJETO_FIELD].ToString();
                lblFAE_NUMERO_CONVENIO.Text =
                    filaContratos[FinAccionEpeData.FAE_NUMERO_CONVENIO_FIELD].ToString();
                lblFAE_VALOR.Text =
                    filaContratos[FinAccionEpeData.FAE_VALOR_FIELD].ToString();
                lblFAE_NUMERO_CDP.Text = filaContratos[FinAccionEpeData.FAE_NUMERO_CDP_FIELD].ToString();
                lblFAE_VALOR_CDP.Text = filaContratos[FinAccionEpeData.FAE_VALOR_CDP_FIELD].ToString();

            }
        

    }

    protected void btnCerrar_Click(object sender, ImageClickEventArgs e)
    {
        PopupPanel1.Hide();
        LimpiarcargarDetalle();
    }

    private void LimpiarcargarDetalle()
    {
        lblFAE_NUMEROEPE.Text = "";
        lblFAE_FECHA.Text = "";
        lblFAE_JUSTIFICACION.Text = "";
        lblFAE_OBJETO.Text = "";
        lblFAE_NUMERO_CONVENIO.Text =
        lblFAE_VALOR.Text =
        lblFAE_NUMERO_CDP.Text = "";
        lblFAE_VALOR_CDP.Text = "";

        lblFAE_NUMEROEPE.AutoUpdateAfterCallBack = true;
        lblFAE_FECHA.AutoUpdateAfterCallBack = true;
        lblFAE_JUSTIFICACION.AutoUpdateAfterCallBack = true;
        lblFAE_OBJETO.Text = "";
        lblFAE_NUMERO_CONVENIO.AutoUpdateAfterCallBack = true;
        lblFAE_VALOR.AutoUpdateAfterCallBack = true;
        lblFAE_NUMERO_CDP.AutoUpdateAfterCallBack = true;
        lblFAE_VALOR_CDP.AutoUpdateAfterCallBack = true;
    }

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("EpeEje.aspx?SSM_ID=20", true);
    }
    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {

    }
    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        
        

        List<object> keyValues = gidvAccionEpeDev.GetSelectedFieldValues("FAE_ID");
        try
        {
            foreach (object key in keyValues)
            {

                IdentificadorFaeId = key.ToString();
            }
            crearContextItems();
            Server.Transfer("EpeEje.aspx?SSM_ID=20", true);
        }
        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }
    protected void lblDescripcionRubro_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("EjecucionPresupuestalPlanAccionEje.aspx?SSM_ID=20", true);
    }
    protected void lblAccion_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("PlanAccionListadoEje.aspx?SSM_ID=20", true);
    }
    protected void btnXlsExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteXlsToResponse();
    }
    protected void btnRtfExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteRtfToResponse();
    }
    protected void btnCsvExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteCsvToResponse();
    }
}
